package design.pattern.Observer;

import java.util.concurrent.TimeUnit;

/**
 * 用户关注微信公众号 微信公众号 给关注的用户推送消息
 * 1、Subject  目标接口
 * 2、WechatSubject 微信公众号（被观察者）
 * 3、User  观察者
 */
public class MainTest {

    public static void main(String[] args) throws InterruptedException {
        //观察者 用户 构造出来
        User zhangsan = new User("张三");
        User lisi = new User("李四");
        User wangwu = new User("王五");

        //构造目标（被观察者）
        WechatSubject wechatSubject = new WechatSubject();
        //把依赖于  目标的对象添加到一个list中
        wechatSubject.register(zhangsan);
        wechatSubject.register(lisi);
        wechatSubject.register(wangwu);
        //添加消息的时候循环 List 让所有依赖于目标的对象都接收到消息
        wechatSubject.add("java 是中国最好的编程语言");

        TimeUnit.SECONDS.sleep(5);
        System.out.println("----------------------------");
        wechatSubject.add("java 是世界上最好的编程语言");


    }
}
